課程名稱 |
資料結構與演算法 Data Structures and Algorithms |
開課學期 |
102-2 |
授課對象 |
資訊工程學系 |
授課教師 |
林軒田 |
課號 |
CSIE1212 |
課程識別碼 |
902 10750 |
班次 |
01 |
學分 |
3 |
全/半年 |
半年 |
必/選修 |
必帶 |
上課時間 |
星期一2,3(9:10~11:10)星期二5,6(12:20~14:10) |
上課地點 |
資104資104 |
備註 |
限學號單號 且 限本系所學生(含輔系、雙修生) 總人數上限:106人 |
Ceiba 課程網頁 |
http://ceiba.ntu.edu.tw/1022dsa |
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
好的程式,來自於有效地運用計算機上的「資源」。其中最重要的兩項資源,一是計算核心:例如中央處理器、浮點運算器等;二是儲存媒體:例如快取、記憶體、硬碟等(並配合通道、網路等連線裝置)。資料結構與演算法,主要探討的即是如何有效並正確地運用這兩項資源來解決各式的問題。
傳統上資料結構常見偏重於儲存媒體的運用,而演算法常見偏重於計算核心的運用。現實中兩者之地位往往相輔相成:快速的演算法,要靠適當的資料結構來實現;精簡的資料結構,要靠適當的演算法來達成。本課程以基本的資料結構為經,輔以相對應的演算法為緯,由具體的實作中逐步引入各式的理論分析工具,講授如何在不同的情境下,選擇最適當的資料結構與演算法,並評估各種選擇的優劣性。
本課程目的為帶領修課同學理解基本的資料結構及演算法工具,以運用它們解決實務之問題。並希望深化修課同學對先前「計算機程式」課程中所學語言之了解,以建立將來撰寫複雜演算法及大型程式的基礎。
|
課程目標 |
本課程的目標在於讓修課同學:
.理解基本的資料結構:比如陣列、鍊結、樹、圖等。
.有能力運用一個語言來實現基本的資料結構。本課程以C語言為主。
.理解與基本的資料結構相對應的簡單演算法。
.有能力分析基本資料結構及簡單演算法以評估其優劣。
|
課程要求 |
|
預期每週課後學習時數 |
|
Office Hours |
|
指定閱讀 |
|
參考書目 |
|
評量方式 (僅供參考) |
|